Willamette Falls Fish Passages

Coho, Jack Coho, and Steelhead passages at the Willamette Falls

Shayan Kaveh
2022-03-12
hide

Time Series Analysis

This report analyzes fish passage data at Willamette Falls from the University of Washington’s Columbia Basin Research initiative. The ongoing, collaborative data collection by federal, state, and tribal agencies examines passages of several fish species at the passage ladder. This analysis visualizes time-series data from 2001 to 2010 of Coho, Jack Coho, and Steelhead


Location

Willamette Falls is located in Oregon’s Willamette Valley, as seen below:

hide
# image
include_graphics(here("_posts", "2022-03-11-willamette-falls", "data", "willamette_falls.jpg"))

Source: Willamette Valley Heritage

The fish ladder is located near the falls:

hide
# image
include_graphics(here("_posts", "2022-03-11-willamette-falls", "data", "fish_ladder.jpg"))

Source: US Army Corps of Engineers


Data Citation: University of Washington, Columbia Basin Research. 2010. DART Adult Passage Graphics & Text. http://www.cbr.washington.edu/dart/query/adult_graph_text.

hide
fish <- read_csv(here("_posts", "2022-03-11-willamette-falls", "data/willamette_fish_passage.csv")) %>% 
  clean_names() %>% 
  mutate(date = mdy(date))

Analysis

We will use various seasonal plots to examine fish passages for Coho, Jack Coho, and Steelhead over the ten year period.

Daily passages by species

hide
fish_ts <- fish %>% 
  as_tsibble(key = NULL, index = date) %>% 
  select(coho, jack_coho, steelhead) %>% 
  replace_na(list(coho = 0, jack_coho = 0, steehlead = 0)) %>% 
  pivot_longer(cols = c(coho, jack_coho, steelhead),
               names_to = "fish_spp",
               values_to = "passage_count") %>% 
  mutate(fish_spp = case_when(fish_spp == "coho" ~ "Coho",
                                  fish_spp == "jack_coho" ~ "Jack Coho",
                                  fish_spp == "steelhead" ~ "Steelhead")) 
hide
hchart(fish_ts, 
       "line", 
       hcaes(x = date, y = passage_count, group = fish_spp),
       color = c("#b5c7ab", "#ffbdbd", "#c9c9ff")) %>% 
  hc_title(
    text = "Daily Counts of Fish Species") %>% 
  hc_xAxis(
    title = list(text = "Date")) %>% 
  hc_yAxis(
    title = list(text = "Passage Count"),
    min = 0) %>% 
  hc_caption(
    text = "<b>Figure 1.</b> Time series of fish passage counts for Coho, Jack Coho, and Steelhead at Willamette Falls from 2001 to 2010",
    useHTML = T)

Takeaways:


Seasonplots

hide
fish_month <- fish_ts %>%
  pivot_wider(names_from = fish_spp, 
              values_from = passage_count) %>% 
  index_by(yr_mo = ~yearmonth(.)) %>%
  summarize(monthly_mean_steelhead = mean(Steelhead, na.rm = TRUE),
            monthly_mean_coho = mean(Coho, na.rm = TRUE),
            monthly_mean_jack_coho = mean(`Jack Coho`, na.rm = TRUE))

steelhead_season <- fish_month %>%
  gg_season(y = monthly_mean_steelhead,
            pal = paletteer_c(palette = "ggthemes::Classic Red-Green Light", n = 10)) +
  labs(x = "Month", y = "Steelhead") +
  theme_minimal() +
  theme(legend.position = "none")

coho_season <- fish_month %>%
  gg_season(y = monthly_mean_coho, 
            pal = paletteer_c(palette = "ggthemes::Classic Red-Green Light", n = 10)) +
  labs(x = " ", y = "Coho") +
  theme_minimal() +
  theme(legend.position = "none") +
  theme(axis.title.x = element_blank(),
        axis.text.x = element_blank())

jack_season <- fish_month %>%
  gg_season(y = monthly_mean_jack_coho, 
            pal = paletteer_c(palette = "ggthemes::Classic Red-Green Light", n = 10),
            year.labels = TRUE,
            continuous = TRUE) +
  labs(x = " ", y = "Jack Coho") +
  theme_minimal() +
  theme(legend.position = "right") +
  theme(axis.title.x = element_blank(),
        axis.text.x = element_blank())

coho_season / jack_season / steelhead_season + plot_annotation("Daily passage of fish from 2001 to 2010", caption = "Figure 2. Seasonplot of  fish species runs over the course of a year from 2001 to 2010 at the Wilamette Falls fish ladder.") 


Takeaways:


Annual counts by species

hide
fish_counts <- fish %>% 
  # as_tsibble(key = NULL, index = date) %>% 
  select(coho, jack_coho, steelhead, date) %>% 
  replace_na(list(coho = 0, jack_coho = 0, steelhead = 0)) %>%
  pivot_longer(cols = c(coho, jack_coho, steelhead),
               names_to = 'fish_species',
               values_to = 'passage_count') %>%
  mutate(fish_spp = case_when(fish_species == 'coho' ~ "Coho",
                             fish_species == 'jack_coho' ~ "Jack Coho",
                             fish_species == 'steelhead' ~ "Steelhead")) %>%
  mutate(year = year(date)) %>% 
  select(-date) %>% 
  group_by(year, fish_spp) %>% 
  summarize(annual_counts = sum(passage_count)) %>% 
  pivot_wider(names_from = fish_spp, values_from = annual_counts)
hide
fish_annual <- highchart() %>% 
  hc_xAxis(categories = fish_counts$year) %>% 
  hc_add_series(
    name = "Coho", data = fish_counts$Coho, color = "#b5c7ab") %>% 
  hc_add_series(
    name = "Jack Coho", data = fish_counts$`Jack Coho`, color = "#ffbdbd") %>%
  hc_add_series(
    name = "Steelhead", data = fish_counts$Steelhead, color = "#c9c9ff") %>% 
  hc_title(text = "Annual passages of fish") %>% 
  hc_xAxis(
    title = list(text = "Year")) %>% 
  hc_yAxis(
    title = list(text = "Passage Counts"),
    min = 0) %>% 
  hc_caption(
    text = "<b>Figure 3.</b> Annual passages of Coho, Jack Coho, and Steelhead at Willamette Falls from 2001 to 2010",
    useHTML = T)

fish_annual

Takeaways:


Conclusion

The fish ladder at Willamette Falls offers a unique opportunity to observe seasonal patterns of fish. In this report, I analyzed the seasonal patterns of passage through Willamette Falls for Coho, Jack Coho, and Steelhead fish. Several conclusions are apparent: